//封装ajax
function ajax(obj) {
	//兼容创建ajax对象
	var xhr = (function () {
		if(typeof XMLHttpRequest != 'undefined') {
			return new XMLHttpRequest()
		} else if(typeof ActiveXObject  != 'undefined') {
			var version = [
							'MSXML2.XMLHttp 6.0',
							'MSXML2.XMLHttp 3.0',
							'MSXML2.XMLHttp'
						  ];
			for(var i = 0; i < version.length; i++) {
				try {
					return new ActiveXObject(version[i]);
				} catch(e) {
					//有错则跳过
				}
			}
		} else {
			throw new Error('你的浏览器不支持XHR对象！');
		}
	})();
	//加上随机数可以解决ie的缓存问题
	if(obj.method == 'get') obj.url = obj.url + '&rand=' + Math.random();
	//发送数据
	obj.data = (function(data) {
		var arr = [];
		for(var i in data) {
			arr.push(encodeURIComponent(i) + '=' + encodeURIComponent(data[i]));
		}
		return arr.join('&');
	})(obj.data);
	//监测发送方式
	if(obj.method == 'get') obj.url += obj.url.indexOf('?') == -1 ? '?' + obj.data : '&' + obj.data;
	//监测是异步还是同步
	//true为异步，false为同步，默认为同步
	if(obj.async === true) {
		xhr.onreadystatechange = function() { 
			if(xhr.readyState == 4) {
				callback();
			}
		
		}
	}
	//打开文件
	xhr.open(obj.method,obj.url,obj.async);
	//如果是post发送方式
	if(obj.method == 'post') {
		//设置请求头部信息
		xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xhr.send(obj.data);          //把数据作为send方法的参数传进去
	} else {
		xhr.send(null);                   //get方法不用传
	}
	//同步需要在open和send方法之后才能执行打印回应信息操作,异步则不需要
	if(obj.async === false) {
		callback();
	}

	function callback() {
		if(xhr.status == 200) {
			obj.success(xhr.responseText);
		} else {
			alert('获取数据错误！错误代号：' + xhr.status + '，错误信息：' + xhr.statusText);
		}
	}
}





















